package duaxe.home.Graphics;

public class Sprite {
	public final int SIZE;
	private int x, y;
	private int width, height;
	public int[] pixels;
	private SpriteSheet sheet;

	public static Sprite grass = new Sprite(16, 0, 0,SpriteSheet.tiles);
	public static Sprite flower = new Sprite(16, 1, 0,SpriteSheet.tiles);
	public static Sprite rock = new Sprite(16, 2, 0,SpriteSheet.tiles);
	//public static Sprite voidSprite = new Sprite(16,0x00137F);
	public static Sprite voidSprite = new Sprite(16,0);
	
	//spawn
	public static Sprite spawn_grass = new Sprite(16, 0, 0, SpriteSheet.tiles);
	public static Sprite spawn_hedge = new Sprite(16, 1, 0, SpriteSheet.tiles);
	public static Sprite spawn_water = new Sprite(16, 2, 0, SpriteSheet.tiles);
	public static Sprite spawn_walll = new Sprite(16, 0, 1, SpriteSheet.tiles);
	public static Sprite spawn_wall2 = new Sprite(16, 0, 2, SpriteSheet.tiles);
	public static Sprite spawn_floor = new Sprite(16, 1, 1, SpriteSheet.tiles);
	
	
	
	
	
	
//	public static Sprite player0 = new Sprite(16, 0, 10, SpriteSheet.tiles);
//	public static Sprite player1 = new Sprite(16, 1, 10, SpriteSheet.tiles);
//	public static Sprite player2 = new Sprite(16, 0, 11, SpriteSheet.tiles);
//	public static Sprite player3 = new Sprite(16, 1, 11, SpriteSheet.tiles);
	
	public static Sprite player_forward = new Sprite(32,0,5, SpriteSheet.tiles);
	public static Sprite player_back = new Sprite(32,2,5, SpriteSheet.tiles);

	//public static Sprite player_left = new Sprite(32,3,5, SpriteSheet.tiles);
	public static Sprite player_side = new Sprite(32,1,5, SpriteSheet.tiles);

	public static Sprite player_forward_1 = new Sprite(32,0,6, SpriteSheet.tiles);
	public static Sprite player_forward_2 = new Sprite(32,0,7, SpriteSheet.tiles);
	
	public static Sprite player_side_1 = new Sprite(32,1,6, SpriteSheet.tiles);
	public static Sprite player_side_2 = new Sprite(32,1,7, SpriteSheet.tiles);
	
	public static Sprite player_back_1 = new Sprite(32,2,6, SpriteSheet.tiles);
	public static Sprite player_back_2 = new Sprite(32,2,7, SpriteSheet.tiles);
	
	//
	public static Sprite projectile_wizard = new Sprite(16,0,0,SpriteSheet.projectile_wizard);
	
	//Particle
	public static Sprite particle_nomal = new Sprite(3,0x2E1CFF);
	
	public Sprite(int size, int x, int y, SpriteSheet sheet) {
		SIZE = size;
		this.width = size;
		this.height = size;
		pixels = new int[SIZE * SIZE];
		this.x = x * size;
		this.y = y * size;
		this.sheet = sheet;
		load();
	}
	public  Sprite(int width, int height, int colour){
		SIZE = -1;
		this.width = width;
		this.height = height;
		pixels = new int [width*height];
		setColour(colour);
		
	}
		public  Sprite(int size, int colour){
			this.width = size;
			this.height = size;
			SIZE = size;
			pixels = new int [SIZE*SIZE];
			setColour(colour);
		}
	

	private void setColour(int colour) {
			for(int i=0; i<height*width; i++){
				pixels[i] = colour;
			}
		}
	public int getWidth(){
		return width;
	}
	public int getHeight(){
		return height;
	}
	
	private void load() {
		for (int y = 0; y < SIZE; y++) {
			for (int x = 0; x < SIZE; x++) {
				pixels[x + y * SIZE] = sheet.pixels[(x + this.x) + (y + this.y)
						* sheet.SIZE];
			}
		}
	}
}
